import time

class DataTransformer:
    """
    处理设备数据与云平台格式之间的转换。
    这样可以将设备管理与特定IoT平台解耦。
    """
    
    @staticmethod
    def device_data_to_aliyun_format(devices_data):
        """
        将设备数据转换为阿里云IoT平台格式
        """
        transformed_data = {}
        timestamp = int(time.time())
        
        # 遍历所有设备数据并转换为阿里云格式
        for device_name, device_data in devices_data.items():
            if device_name == "photo_sensor":
                # 光照传感器数据转换
                transformed_data["envLight"] = device_data["percentage"]
            elif device_name == "led":
                # LED状态转换
                transformed_data["powerstate"] = device_data["is_on"]
        
        transformed_data["Timestamp"] = timestamp
        return transformed_data
    
    @staticmethod
    def aliyun_command_to_device_action(command_params):
        """
        将阿里云IoT平台指令转换为设备操作
        """
        actions = []
        
        # 处理每个参数并映射到相应设备操作
        for param_name, param_value in command_params.items():
            if param_name == "powerstate":
                actions.append({
                    "device_name": "led",
                    "command": "set_state",
                    "value": param_value
                })
            # 可以添加更多参数到设备命令的映射
        
        return actions